package cn.tedu.spring.example;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * 测试
 */
public class TestUser {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        /*
            方式1：通过 new 关键字创建对象;
         */
        User user1 = new User();
        user1.run();

        /*
        方式2：通过反射方式创建对象;
         */
        Class zz = Class.forName("cn.tedu.spring.example.User");
        User user2 = (User) zz.newInstance();
        user2.run();

        /*
        方式3：通过Spring框架创建对象
            1.创建IoC容器;
            2.获取对象;
            3.调用方法测试.
         */
        //1.由Spring框架创建的对象,叫做Spring Bean对象,简称Bean对象;
        //  和普通的Java对象没有任何区别,只是为了区分创建者的身份[框架还是开发者];
        //2.复制包名的快捷键
        //  2.1 Windows: Ctrl + Shift + Alt + c 或者 Fn+Ctrl+Shift+Alt+c
        //  2.2 MacOS: Command + Shift + c
        //3. .var+回车 自动补全功能
        // context.getBean(User.class).var + 回车
        ApplicationContext context = new AnnotationConfigApplicationContext("cn.tedu.spring.example");
        User user3 = context.getBean(User.class);
        user3.run();

    }
}








